package com.atguigu.gulimall.auth;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
/**
 * 认证服务
 *
 * 1、核心原理
 * 1》@EnableRedisHttpSession 导入了RedisHttpSessionConfiguration 配置
 *      1、给容器中添加了 一个组件
 *      SessionRepository==》RedisOperationsSessionRepository ==》 redis操作session的增删改查的封装类
 *      2、SessionRepositoryFilter：==》filter  session存储过滤器 :每个请求过来都要经过filter
 *          1、创建的时候自动从容器中获取到了SessionRepository;
 *          2、原始的request，response都被包装了。SessionRepositoryRequestWrapper  SessionRepositoryResponseWrapper、
 *          3、以后获取session.request.getSession()
 *          4、wrappedRequest.getSession()==>SessionRepository中获取到的
 *
 //*    装饰者模式
        自动延期
 */
@EnableRedisHttpSession  //整合redis作为session存储
@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class GulimallAuthServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallAuthServerApplication.class, args);
    }

}
